热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

敌机|战机_游戏开发新手入门教程13:从想法到设计的过程

篇首语:本文由编程笔记#小编为大家整理,主要介绍了游戏开发新手入门教程13:从想法到设计的过程相关的知识,希望对你有一定的参考价值。 在接下来的几节里,我会向你展示游戏

篇首语:本文由编程笔记#小编为大家整理,主要介绍了游戏开发新手入门教程13:从想法到设计的过程相关的知识,希望对你有一定的参考价值。



在接下来的几节里,我会向你展示游戏制作的整个流程,从开始的一个粗略的想法,到游戏设计,再到最终的游戏制作。

一个游戏通常开始于一个想法,这个想法可以是千奇百怪的,可以是五花八门的,甚至可以是可笑的。不论如何有一个想法,是一个游戏的开端。当你有了一个想法了以后,如果你希望它最终能够变成一个真正的游戏,那么你就必须要继续往前走,反复的思考,雕琢你的粗糙的想法,将它细化,形成一份具体的可行的游戏设计方案。

通常,当你将想法变成具体的游戏设计时,并不是那么顺利,你可能会发现这个想法不足之处太多,或者不切实际,亦或者这个想法的实现超出了你的能力范围,大部分的想法会在这一阶段被否定,或者被修改,你可能根本拿不出一份具体可行的游戏设计方案,亦或者,你的方案完全背离了起初的想法.....

无论你遇到的是哪种情况,都无需担心,因为这是游戏制作中再正常不过的事了,它告诉了我们两件事情:

  • 我们脑袋中的大部分的想法都不切实际。
  • 制作游戏是一项需要积累和反复练习的技能,没有人能一上来就做的很好。

言归正传,下面正式开始从想法到设计的过程。

首先,假设我们有了一个想法:我要做一个“打飞机”的游戏,要有一个炫酷的名字叫“太空保卫战”,我要控制着战机击落每一个入侵的敌人。

好了,现在我们有一个粗糙的想法了,我们甚至为游戏起了个名字,那么接下来呢,我们尝试为这个想法进行细化,让其变的更具体一点儿。

可以从下面这几个方面入手:

  • 这是一个太空射击游戏,所以游戏的主题背景是太空。
  • 我要能控制战机在太空中飞行,如何控制呢?因为这是一个手机上的游戏,所以一个比较好的控制方式是用手指点击战机,然后在屏幕中随意的拖动就可以控制战机的移动。
  • 战机需要进攻敌人,因此我们的战机要能够发射子弹。
  • 要有入侵的敌人,敌人如何入侵呢?最简单的方式就是不停的有敌人从屏幕上方飞下来,战机有两种选择,要么将敌机击毁,要么躲避敌机。

现在我们的想法已经有了些具体的内容了,我们打算有一个太空作为背景,使用拖拽的方式控制战机的移动,战机可以发射子弹,敌机不停的从上方下落,我们可以选择击毁敌机或者躲避敌机。

虽然想法已经丰富了很多,但是作为游戏设计,还是不够清晰具体。

游戏需要有一个目标或者也叫做任务,我们需要一个“目标”来作为玩游戏的动力,这里我们就将击毁敌机的数量当作一个目标,击毁的敌机数量越多,表示你越厉害。我们设置一个得分的数字记录,每击毁一架敌机,得分就加一。在游戏中尽可能多的击毁敌机,获得更高的分数,就是游戏的目标。

另外,游戏也需要有一个结束条件,总不能无止境的玩下去吧!这里,我们设定战机被任何一架敌机碰到,则游戏结束。

现在,游戏有了目标和结束条件,我们想法更加清晰和明确了:这是一个太空射击游戏,敌机不停的从上方入侵,玩家需要使用手指拖拽的方式控制战机移动,击毁或者躲避飞来的敌机,要在不被敌机碰到的前提下,击毁尽可能多的敌机,以获得更高的分数。

有了清晰的想法,下面我们可以做一些具体的设计了。

我们先从游戏的外观开始,画一些草图,来展示它看起来应该是什么样子。游戏开发新手入门教程13:从想法到设计的过程_游戏开发教程

这是一个游戏开始界面,它展示了游戏的名字,并且只有一个“开始”按钮,点击“开始”按钮就会正式进入游戏。游戏开发新手入门教程13:从想法到设计的过程_游戏开发教程_02

游戏大概是这个样子,敌机从上方不停的下落,战机不停的发射子弹,用手指拖拽战机,控制其移动,左上角显示的是游戏的得分。游戏开发新手入门教程13:从想法到设计的过程_游戏开发教程_03

游戏结束后,我们只简单的显示游戏结束的提示,并增加一个“重新开始”按钮,点击后可以重新开始游戏。

以上就是游戏看起来的样子,非常的简单,一个开始界面,一个游戏界面,一个结束界面。开始界面负责展示游戏的名字,游戏界面是我们进行游戏的地方,结束界面提示游戏结束了,并且可以重新开始。

在纸上画草图可以帮助你梳理想法,而且这些草图也会是你制作游戏过程中的最好的参照。

游戏了外貌有了,下面我们要深入其中来设计逻辑了。

首先,来划分一下游戏场景,这里,简单的划分为两个场景:

  • 开始场景
  • 游戏场景

“开始场景”只负责开始界面,点击“开始游戏”按钮,就会进入到“游戏场景”,我们将游戏的所有的逻辑都放在“游戏场景”中。

接下来,分析一下战机,战机需要能通过拖拽来控制移动,另外,战机碰撞到敌机时,游戏就结束了。所以,战机需要处理以下的逻辑:

  • 当手指点击战机拖拽时要做出响应,战机位置跟随手指移动。
  • 战机碰撞到敌机时,则游戏结束,显示游戏结束提示。

接着,看一下子弹的逻辑,游戏一开始,战机就会不停的发射子弹,所以子弹需要用到“克隆”,当子弹被“克隆”出来后,应该位于战机的上方,这样看起来才像是战机发射的子弹,所以子弹被“克隆”出来后需要调整其位置,最后,当子弹击中敌机时,子弹就应该消失。所以子弹需要处理以下逻辑:

  • 游戏开始后就不停的克隆子弹。
  • 当子弹被“克隆”出来后,将其位置设置在战机的位置。
  • 当子弹碰撞到“敌机”时,子弹应该被销毁。

接着,来看敌机,敌机需要不停的从屏幕上方的随机位置向下落,我们需要不停的产生敌机,所以需要对敌机进行“克隆”,新生成的敌机需要位于屏幕上方的随机位置,所以在敌机“克隆完成时”,需要对位置进行设置。另外,当敌机被子弹击中后,会被击毁,需要处理与子弹的碰撞,最后,敌机被击毁后,需要发送一个事件告诉得分加一。所以,敌机需要处理下面这些逻辑:

  • 游戏开始后就要每间隔一定的时间“克隆”敌机。
  • 当敌机被“克隆”出来后,将位置设置为屏幕顶端的随机位置。
  • 当子弹碰撞到敌机时,敌机销毁,并发送一个“敌机销毁”事件。

最后,再来看一下得分,它只负责记录敌机被击毁的数量,所以它只需要关注是否有“敌机销毁”的事件。

  • 查看是否有“敌机销毁”事件,如果有,就将得分加一

终于,我们有了一个比较完整的设计,有草图显示了游戏看起来的样子,有了游戏中每个部分的具体逻辑,来展示游戏运行时每个部分所应该负责的任务。

总结一下:

我们展示了一个想法是如何通过不断的完善和细化,最终变成一份游戏设计的。

下一节,我们会将所有学过的内容结合起来,做出自己的第一款小游戏。

练习一下:

游戏设计是需要不断的练习和打磨的,尝试将自己的想法变成一份游戏设计,不停的打磨,直到其完善。


我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我就对啦!欢迎关注公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料,或者加小蚂蚁vx(xiaomayi6669),交个朋友。


推荐阅读
  • 深入理解异步多线程编程模型
    现代计算机系统中的CPU通过并行处理提高效率,但所谓的并发处理实际上是一种基于轮询的模拟并行。本文探讨了现代处理器如何通过虚拟化技术实现更高的并发性能,以及在.NET框架中如何有效利用线程和异步编程模式。 ... [详细]
  • Linux系统中高效解决高Buff/Cache占用问题
    本文详细探讨了在Linux系统中遇到的高Buff/Cache占用问题及其解决方案,提供了手动清除与定时任务自动化处理的方法。 ... [详细]
  • 本文旨在探讨Linux系统中两种重要的进程间通信(IPC)机制——System V和POSIX的标准及其特性,为开发者提供深入的理解。 ... [详细]
  • 概述集成过程和第三方平台注册官网已经说的很详细了,具体请参考:快速集成|Mob文档中心http:wiki.mob.comsdk-share-android-3-0-0第三 ... [详细]
  • 本文深入探讨了PHP电商网站的开发成本,涵盖从基础建站到高级定制的各种费用因素。 ... [详细]
  • 本文详细介绍了Python的multiprocessing模块,该模块不仅支持本地并发操作,还支持远程操作。通过使用multiprocessing模块,开发者可以利用多核处理器的优势,提高程序的执行效率。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • 成为一名高效的Java架构师不仅需要掌握高级Java编程技巧,还需深入理解JVM的工作原理及其优化方法。此外,对池技术(包括对象池、连接池和线程池)的应用、多线程处理、集合对象的内部机制、以及常用的数据结构和算法的精通也是必不可少的。同时,熟悉Linux操作系统、TCP/IP协议栈、HTTP协议等基础知识,对于构建高效稳定的系统同样重要。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • Golang与微服务架构:构建高效微服务
    本文探讨了Golang在微服务架构中的应用,包括Golang的基本概念、微服务开发的优势、常用开发工具以及具体实践案例。 ... [详细]
  • 本教程旨在指导开发者如何在Android应用中通过ViewPager组件实现图片轮播功能,适用于初学者和有一定经验的开发者,帮助提升应用的视觉吸引力。 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 本文详细解析了Java中流的概念,特别是OutputStream和InputStream的区别,并通过实际案例介绍了如何实现Java对象的序列化。文章不仅解释了流的基本概念,还探讨了序列化的重要性和具体实现步骤。 ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
author-avatar
哈罗xeh_406
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有